package com.iris.live.services.data.models;

import javax.persistence.*;
import java.sql.Date;

/**
 * Created by DF on 10/29/2016.
 */
@Entity
@Table(name = "财务开票", schema = "live", catalog = "")
public class 财务开票Model {
    private String vin;
    private String 许可;
    private String 是否金融客户;
    private String 购货单位;
    private Date 金融客户申请通过时间;
    private String 金融客户首付款交付状态;
    private Date 非金融客户全款到账日期;
    private String 车辆类型;
    private String 厂牌型号;
    private String 产地;
    private String 进口证明书号;
    private String 发动机号码;
    private Date 申请开票日期;
    private Date 实际开票日期;
    private String 开票状态;

    @Id
    @Column(name = "VIN")
    public String getVin() {
        return vin;
    }

    public void setVin(String vin) {
        this.vin = vin;
    }

    @Basic
    @Column(name = "许可")
    public String get许可() {
        return 许可;
    }

    public void set许可(String 许可) {
        this.许可 = 许可;
    }

    @Basic
    @Column(name = "是否金融客户")
    public String get是否金融客户() {
        return 是否金融客户;
    }

    public void set是否金融客户(String 是否金融客户) {
        this.是否金融客户 = 是否金融客户;
    }

    @Basic
    @Column(name = "`购货单位(人)`")
    public String get购货单位() {
        return 购货单位;
    }

    public void set购货单位(String 购货单位) {
        this.购货单位 = 购货单位;
    }

    @Basic
    @Column(name = "金融客户申请通过时间")
    public Date get金融客户申请通过时间() {
        return 金融客户申请通过时间;
    }

    public void set金融客户申请通过时间(Date 金融客户申请通过时间) {
        this.金融客户申请通过时间 = 金融客户申请通过时间;
    }

    @Basic
    @Column(name = "金融客户首付款交付状态")
    public String get金融客户首付款交付状态() {
        return 金融客户首付款交付状态;
    }

    public void set金融客户首付款交付状态(String 金融客户首付款交付状态) {
        this.金融客户首付款交付状态 = 金融客户首付款交付状态;
    }

    @Basic
    @Column(name = "非金融客户全款到账日期")
    public Date get非金融客户全款到账日期() {
        return 非金融客户全款到账日期;
    }

    public void set非金融客户全款到账日期(Date 非金融客户全款到账日期) {
        this.非金融客户全款到账日期 = 非金融客户全款到账日期;
    }

    @Basic
    @Column(name = "车辆类型")
    public String get车辆类型() {
        return 车辆类型;
    }

    public void set车辆类型(String 车辆类型) {
        this.车辆类型 = 车辆类型;
    }

    @Basic
    @Column(name = "厂牌型号")
    public String get厂牌型号() {
        return 厂牌型号;
    }

    public void set厂牌型号(String 厂牌型号) {
        this.厂牌型号 = 厂牌型号;
    }

    @Basic
    @Column(name = "产地")
    public String get产地() {
        return 产地;
    }

    public void set产地(String 产地) {
        this.产地 = 产地;
    }

    @Basic
    @Column(name = "进口证明书号")
    public String get进口证明书号() {
        return 进口证明书号;
    }

    public void set进口证明书号(String 进口证明书号) {
        this.进口证明书号 = 进口证明书号;
    }

    @Basic
    @Column(name = "发动机号码")
    public String get发动机号码() {
        return 发动机号码;
    }

    public void set发动机号码(String 发动机号码) {
        this.发动机号码 = 发动机号码;
    }

    @Basic
    @Column(name = "申请开票日期")
    public Date get申请开票日期() {
        return 申请开票日期;
    }

    public void set申请开票日期(Date 申请开票日期) {
        this.申请开票日期 = 申请开票日期;
    }

    @Basic
    @Column(name = "实际开票日期")
    public Date get实际开票日期() {
        return 实际开票日期;
    }

    public void set实际开票日期(Date 实际开票日期) {
        this.实际开票日期 = 实际开票日期;
    }

    @Basic
    @Column(name = "开票状态")
    public String get开票状态() {
        return 开票状态;
    }

    public void set开票状态(String 开票状态) {
        this.开票状态 = 开票状态;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        财务开票Model 财务开票Model = (财务开票Model) o;

        if (vin != null ? !vin.equals(财务开票Model.vin) : 财务开票Model.vin != null) return false;
        if (许可 != null ? !许可.equals(财务开票Model.许可) : 财务开票Model.许可 != null) return false;
        if (是否金融客户 != null ? !是否金融客户.equals(财务开票Model.是否金融客户) : 财务开票Model.是否金融客户 != null) return false;
        if (购货单位 != null ? !购货单位.equals(财务开票Model.购货单位) : 财务开票Model.购货单位 != null) return false;
        if (金融客户申请通过时间 != null ? !金融客户申请通过时间.equals(财务开票Model.金融客户申请通过时间) : 财务开票Model.金融客户申请通过时间 != null) return false;
        if (金融客户首付款交付状态 != null ? !金融客户首付款交付状态.equals(财务开票Model.金融客户首付款交付状态) : 财务开票Model.金融客户首付款交付状态 != null)
            return false;
        if (非金融客户全款到账日期 != null ? !非金融客户全款到账日期.equals(财务开票Model.非金融客户全款到账日期) : 财务开票Model.非金融客户全款到账日期 != null)
            return false;
        if (车辆类型 != null ? !车辆类型.equals(财务开票Model.车辆类型) : 财务开票Model.车辆类型 != null) return false;
        if (厂牌型号 != null ? !厂牌型号.equals(财务开票Model.厂牌型号) : 财务开票Model.厂牌型号 != null) return false;
        if (产地 != null ? !产地.equals(财务开票Model.产地) : 财务开票Model.产地 != null) return false;
        if (进口证明书号 != null ? !进口证明书号.equals(财务开票Model.进口证明书号) : 财务开票Model.进口证明书号 != null) return false;
        if (发动机号码 != null ? !发动机号码.equals(财务开票Model.发动机号码) : 财务开票Model.发动机号码 != null) return false;
        if (申请开票日期 != null ? !申请开票日期.equals(财务开票Model.申请开票日期) : 财务开票Model.申请开票日期 != null) return false;
        if (实际开票日期 != null ? !实际开票日期.equals(财务开票Model.实际开票日期) : 财务开票Model.实际开票日期 != null) return false;
        if (开票状态 != null ? !开票状态.equals(财务开票Model.开票状态) : 财务开票Model.开票状态 != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = vin != null ? vin.hashCode() : 0;
        result = 31 * result + (许可 != null ? 许可.hashCode() : 0);
        result = 31 * result + (是否金融客户 != null ? 是否金融客户.hashCode() : 0);
        result = 31 * result + (购货单位 != null ? 购货单位.hashCode() : 0);
        result = 31 * result + (金融客户申请通过时间 != null ? 金融客户申请通过时间.hashCode() : 0);
        result = 31 * result + (金融客户首付款交付状态 != null ? 金融客户首付款交付状态.hashCode() : 0);
        result = 31 * result + (非金融客户全款到账日期 != null ? 非金融客户全款到账日期.hashCode() : 0);
        result = 31 * result + (车辆类型 != null ? 车辆类型.hashCode() : 0);
        result = 31 * result + (厂牌型号 != null ? 厂牌型号.hashCode() : 0);
        result = 31 * result + (产地 != null ? 产地.hashCode() : 0);
        result = 31 * result + (进口证明书号 != null ? 进口证明书号.hashCode() : 0);
        result = 31 * result + (发动机号码 != null ? 发动机号码.hashCode() : 0);
        result = 31 * result + (申请开票日期 != null ? 申请开票日期.hashCode() : 0);
        result = 31 * result + (实际开票日期 != null ? 实际开票日期.hashCode() : 0);
        result = 31 * result + (开票状态 != null ? 开票状态.hashCode() : 0);
        return result;
    }
}
